package de.miniframes.minijpa;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>
 * Specifies the respective JPA-Query parameter name of an enquiry method
 * argument.
 * </p>
 * 
 * <p>
 * The annotated {@linkplain DatabaseEnquiryMethod database enquiry method}
 * argument will mapped to the JPA-Query parameter which name specified with the
 * {@link #parameterName()} defined here.
 * </p>
 * 
 * @author Matthias Zeimer
 * @version 1
 * @since 0.1, 18.06.2012
 */
@Target({
    ElementType.PARAMETER
})
@Retention(RetentionPolicy.RUNTIME)
public @interface Parameter {

    /**
     * The JPA-Query parameter name to which the value is assigned.
     * 
     * @return The name of the JPA-Query parameter.
     */
    String parameterName();
}
